package com.ns.scs.comments.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ns.scs.comments.dto.CommentsPageDto;
import com.ns.scs.comments.entry.CommentsEntry;
import com.ns.scs.comments.vo.CommentsVO;
import com.ns.scs.my.vo.MyCommentsVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 数据层接口
 *
 * @author lw
 * @since 2024/09/23
 */
@Mapper
public interface CommentsMapper extends BaseMapper<CommentsEntry> {
    /**
     * 分页查询
     *
     * @param dto  参数
     * @param page 分页参数
     * @return PropEntryVO
     */
    Page<CommentsVO> getList(@Param("dto") CommentsPageDto dto, @Param("page") Page page);

    /**
     * 查询资源相关评论
     *
     * @param resourceId 资源id
     * @return RsrCommentVO
     */
    List<CommentsVO> getByResourceId(Long resourceId);

    /**
     * 查询评论
     *
     * @param id 对象
     * @return RsrCommentVO
     */
    CommentsVO getCommentById(Long id);

    /**
     * 根据资源id、用户id、类型查询
     *
     * @param resourceId 资源id
     * @param uid        用户id
     * @param type       类型
     * @return CollectionEntry
     */
    List<MyCommentsVO> getByResourceIdAndUidAndType(Long resourceId, Long uid, String type);

    /**
     * 审核
     *
     * @param id     评论id
     * @param status 状态
     */
    boolean audit(@Param("id") Long id, @Param("status") Integer status);
}
